home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / clue.lha / clue / doc / clue.tex / node87_mn.html < prev    next >
Text File  |  1989-07-12  |  5KB  |  97 lines

  1.  
  2. <H3><A ID="SECTION002711100000000000000"><tex2html_anchor_invisible_mark></A> <A ID="ch:contact-state"><tex2html_anchor_mark></A><BR>
  3. Contact State
  4. </H3><#4909#>
  5.            
  6.       
  7.  
  8. <A ID="428"><tex2html_anchor_invisible_mark></A>
  9. The visual effect of a contact upon the user interface is controlled by the
  10. value of its <#429#><TT>state</TT><#429#> slot and is related to two
  11. factors<A NAME="tex2html50" HREF="#footfnm1" TARGET="footer"><SUP>24.1</SUP></A>.
  12.  
  13. <UL>
  14. <LI><#432#><B>Mapping</B><#432#>:
  15. The concepts of <#433#><B>mapped</B><#433#><A ID="434"><tex2html_anchor_invisible_mark></A>, <#435#><B>viewable</B><#435#><A ID="436"><tex2html_anchor_invisible_mark></A>, and
  16. <#437#><B>visible</B><#437#><A ID="438"><tex2html_anchor_invisible_mark></A> apply to any <#439#><TT>xlib:window</TT><#439#> object and therefore
  17. to contacts as well[#x-protocol#<tex2html_cite_mark>#1##<tex2html_cite_mark>#].
  18. A contact is said to be ``mapped'' if <#441#><TT>(xlib:map-window
  19. contact)</TT><#441#> has been called. A contact is ``viewable'' if it and all of its
  20. ancestors are mapped. A contact is ``visible'' only if someone looking at the
  21. display screen can actually see some part of it; that is, the contact is
  22. viewable and is not completely occluded by any other windows.
  23. <A ID="442"><tex2html_anchor_invisible_mark></A>
  24. <A ID="443"><tex2html_anchor_invisible_mark></A>
  25. <A ID="444"><tex2html_anchor_invisible_mark></A>
  26.  
  27. <P>
  28. </LI>
  29. <LI><#445#><B>Geometry management</B><#445#>: A contact under geometry management control is
  30. <A ID="446"><tex2html_anchor_invisible_mark></A><A ID="447"><tex2html_anchor_invisible_mark></A><A ID="448"><tex2html_anchor_invisible_mark></A>
  31. said to be ``managed.'' As a
  32. result of CLUE geometry management, any changes to the position or size of a
  33. managed contact may affect the geometry of its managed siblings, its parent, and
  34. (in general) any other managed member of the contact subtree to which it
  35. belongs.  Creating or destroying a managed contact can have a similar
  36. result. However, changes involving an unmanaged contact
  37. do not have this kind of ``ripple'' effect on the visible user interface. 
  38. </LI>
  39. </UL>
  40.  
  41. <P>
  42. These factors are not independent. In CLUE, it is invalid for a contact
  43. to be mapped but unmanaged, because this contradicts the purpose of geometry
  44. management<A NAME="footfnm2"
  45.  HREF="#fnm2" TARGET="footer"><SUP>24.2</SUP></A>. Thus, the <#451#><TT>state</TT><#451#> slot of a
  46. contact has one of three values.
  47.  
  48. <P>
  49. <DIV class="CENTER">
  50. <TABLE CELLPADDING=3>
  51. <TR><TD ALIGN="LEFT"><TT>:withdrawn</TT></TD>
  52. <TD ALIGN="LEFT">The contact is unmanaged and unmapped.</TD>
  53. </TR>
  54. <TR><TD ALIGN="LEFT"><TT>:managed</TT></TD>
  55. <TD ALIGN="LEFT">The contact is managed but unmapped.</TD>
  56. </TR>
  57. <TR><TD ALIGN="LEFT"><TT>:mapped</TT></TD>
  58. <TD ALIGN="LEFT">The contact is both  managed and mapped.</TD>
  59. </TR>
  60. </TABLE>
  61. </DIV>
  62.  
  63. <P>
  64. The conditions corresponding to a contact's <#460#><TT>state</TT><#460#> are not guaranteed to be
  65. satisfied until the contact is realized.
  66. <A ID="461"><tex2html_anchor_invisible_mark></A><A ID="462"><tex2html_anchor_invisible_mark></A>
  67. CLUE calls the <#463#><TT>update-state</TT><#463#> function 
  68. <A ID="464"><tex2html_anchor_invisible_mark></A> in
  69. order to force consistency of the state of all contacts belonging to a <#465#><TT>contact-display</TT><#465#> (see Section~<A HREF=<tex2html_cr_mark>#ch:contact-display#466><tex2html_cr_mark></A>).
  70. <A ID="467"><tex2html_anchor_invisible_mark></A>
  71.  
  72. <P>
  73. <#4626#>
  74. <#4156#><FONT SIZE="+1"><#468#><B>update-state Function, contact-display</B><#468#></FONT><#4156#> 
  75. <A ID="469"><tex2html_anchor_invisible_mark></A>
  76. <A ID="470"><tex2html_anchor_invisible_mark></A>
  77. <DIV class="RIGHT">
  78. <tex2html_image_mark>#tex2html_wrap_inline9701#
  79. </DIV><#4626#>
  80.  
  81. <P>
  82. <DIV class="RIGHT">
  83. <tex2html_image_mark>#tex2html_wrap_inline9704#
  84. </DIV>
  85.  
  86. <P>
  87. The default <#488#><TT>state</TT><#488#> value is <#489#><TT>:mapped</TT><#489#>. As a result, unless
  88. specified otherwise, all contacts will automatically be viewable after 
  89. <#490#><TT>update-state</TT><#490#> is called (in particular, after a call to <#491#><TT>process-next-event</TT><#491#>).  After initialization and realization, 
  90. the <#492#><TT>(setf contact-state)</TT><#492#> accessor method causes transitions in a contact's
  91. state and its visible effect. The most common usages are setting a contact's
  92. state to <#493#><TT>:withdrawn</TT><#493#> to withdraw it or to <#494#><TT>:mapped</TT><#494#> to present it.
  93. <A ID="495"><tex2html_anchor_invisible_mark></A><A ID="496"><tex2html_anchor_invisible_mark></A>
  94.  
  95. <P>
  96.  
  97.  =0 <#4919#>=0 <#4923#>